<script>
	import permision from "@/js_sdk/wa-permission/permission.js"
	import _action from './common/_action';
	import _get from './common/_get';
	import _data from './common/_data';
	import _page from './common/common';
	export default {
		globalData: {
			/** 代理客户id */
			agent_id: 1,
			/** http 服务端地址 */
			http_url: 'http://im.loveworldzh.com',
			/** 静态文件存放地址 */
			static_url: 'http://chat.loveworldzh.com',
			/** socket 服务端地址 */
			socket_url: 'ws://im.loveworldzh.com:8383',
			/** socket 连接状态 */
			socket_state: 0,
			/** 好友申请通知 */
			new_friend_tips_num: 0,
			/** 群认证通知 */
			new_group_tips_num: 0,
			/** 朋友圈通知 */
			no_reader_circle: 0,
			/** 朋友圈消息未读数 */
			no_reader_circle_chat_num: 0,
			/** 缓存的数据 */
			cache: {
				/** 个人头像缓存数据 */
				local_photo: '',
			},
			/** 用户信息 */
			user_info: {
				id: 0,
				nickname: '',
				username: '',
				photo: 'default_man/70.jpg',
				doodling: '',
				phone: '',
				circle_img: 'default_circle_img.jpg?_=3.1415926',
			},
			isOnlie: true,
			dragInfo: {
				moveX: 260,
				moveY: 180,
				state: -1
			}
		},
		onLaunch: function() {
			//#ifdef APP-PLUS
			plus.runtime.getProperty(plus.runtime.appid, function(widgetInfo) {
				let version = widgetInfo.version
				let name = widgetInfo.name
				uni.request({
					url: 'https://api.loveworldzh.com/api/index/isnewversion',
					data: {},
					success: (result) => {
						var data = result.data;
						let nowVersion = parseInt(version.split('.').join('').slice(0, 3))
						let newVersion = parseInt(data.version.split('.').join('').slice(0, 3))
						if (newVersion > nowVersion && data.hot_url) {
							uni.showModal({ //提醒用户更新
								title: "更新提示",
								content: '检测到新版本，即将进入更新',
								showCancel: false,
								success: (res) => {
									if (res.confirm) {
										const downloadTask = uni.downloadFile({
											url: data.hot_url,
											success: (downloadResult) => {
												if (downloadResult.statusCode === 200) {
													plus.runtime.install(
														downloadResult.tempFilePath, {
															force: true
														},
														function(e) {
															// plus.runtime
															// 	.quit()
															plus.runtime.restart()
														},
														function(e) {
															uni.showModal({ //提醒用户更新
																title: "更新失败",
																content: JSON.stringify(e),
																showCancel: false,
																success: (res) => {
																	console.log(res);
																}
															})
														});
												}
											}
										});

										var showLoading = plus.nativeUI.showWaiting(
											"正在下载"); //创建一个showWaiting对象
										downloadTask.onProgressUpdate((res) => {
											showLoading.setTitle("  正在下载" + res.progress + "%  ");
											// 测试条件，取消下载任务。
											if (res.progress === 100) {
												plus.nativeUI.closeWaiting();
											}
										});
									}
								}
							})
						}
					}
				});
			});

			this.$store.commit('initRECORD');
			plus.screen.lockOrientation('portrait-primary');
			// plus.push.addEventListener("click", function(msg) {
			// 	console.log("msg.payload", JSON.stringify(msg.payload));
			// 	let content_type = msg.payload.content_type;
			// 	if (Object.keys(msg.payload).length) {
			// 		switch (parseInt(content_type)) {
			// 			case 6:
			// 			case 7:
			// 				uni.navigateTo({
			// 					url: '/pages/chat/videoCall?' + _page.pageParam(msg.payload)
			// 				});
			// 				break;
			// 		}
			// 	}
			// 	//这里可以写跳转业务代码
			// }, false);
			// plus.push.addEventListener("receive", function(msg) {
			// 	// plus.ui.alert(2);
			// 	//这里可以写跳转业务代码
			// 	console.log("recevice:" + JSON.stringify(msg))
			// }, false);
			//#endif

		},
		onShow() {
			//#ifdef APP-PLUS
			this.requestAn()
			//#endif
			let _this = this;
			if (!_data.localData('IMtoken')) {
				return;
			}
			/**
			 * 每次app启动都加载最新的会话列表数据，只要是最新的会话列表数据，会话界面数据也会是最新的
			 * 这里延时100ms,不然会全局变量没有加载完成，会报错。
			 */
			if (_data.data('socket_state') <= 0) {
				_this.$reset().$reconnect(function() {
					if (_data.localData('IMtoken')) _get.getChatList();

				});
			}
			/**
			 * @param {Object} res
			 * 监听网络变化
			 * 如果有网络变化，断开socket，再重新连接
			 * 重新获取会话列表数据
			 * 如果是在会话界面，再重新获取这个的对话数据
			 */
			uni.onNetworkStatusChange(function(res) {
				// console.log("App  onNetworkStatusChange...");
				/** 断开重新再连接，再获取最新数据 */
				if (_data.data('socket_state') <= 0 && _data.localData('IMtoken')) {
					_this.$reset().$reconnect(function() {
						if (_data.localData('message_list_id') && _data.localData('IMtoken')) {
							_get.getChatData({
								send_data: {
									list_id: _data.localData('message_list_id'),
									time: 0,
									is_up: 1,
								},
								is_action_data: 1,
							});
						}
					});
				}
			});
		},
		onHide() {
			this.globalData.isOnlie = false;
		},
		methods: {
			requestAn() {
				switch (uni.getSystemInfoSync().platform) {
					case 'android':
						permision.requestAndroidPermission("android.permission.RECORD_AUDIO")
						break;
					case 'ios':
						permision.judgeIosPermission("record")
						break;
				}
			}
		}
	}
</script>

<style lang="scss">
	@import "uview-ui/index.scss";
	/*每个页面公共css */
	@import 'components/aui-picker/common/aui/css/aui.css';
	@import 'components/aui-picker/common/aui/css/aui.iconfont.css';
	@import "./static/css/uni.css";

	page {
		width: 100%;
		height: 100%;
		background-color: #F2F2F2;
	}

	/*自定义字体库 */
	// @font-face {
	// 	font-family: 'YouSheBiaoTiHei';
	// 	src: url(static/font/YouSheBiaoTiHei.ttf);
	// }

	uni-swiper {
		width: 100%;
		height: 100%;
	}
</style>
